// pages/binding/binding.js
import {
  API_WENGANYUNUSER_LIST
} from '../../api/index'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    pageSubmitData: {
      name: '',
      idcardno: ''
    },
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  // 确认绑定
  onBinding() {
    const {
      name,
      idcardno
    } = this.data.pageSubmitData
    if (!name) {
      wx.showToast({
        title: '请填写人员姓名',
        icon: 'none'
      })
      return
    }
    if (!idcardno) {
      wx.showToast({
        title: '请填写人员的身份证/护照号码',
        icon: 'none'
      })
      return
    }

    if (!this.checkIDCard(idcardno)) {
      wx.showToast({
        title: '请填写正确的身份证/护照号码',
        icon: 'none'
      })
      return
    }
    const params = {
      name,
      idcardno,
      againtype: '0'
    }
    API_WENGANYUNUSER_LIST(params).then(res => {
      if (res.data instanceof Array) {
        // 保存用户系统列表
        wx.setStorageSync('userSystemList', res.data)
        wx.reLaunch({
          url: '/pages/system/system',
        })
      } else {
        wx.showToast({
          title: res.data,
          icon: 'none'
        })
      }
    })
  },

  // 游客登陆
  onVisitor() {
    // 设置为游客
    wx.setStorageSync('isVisitor', true)
    wx.navigateTo({
      url: '/pages/facility/facility',
    })
  },

  // 输入内容
  onInput(e) {
    this.data.pageSubmitData[e.currentTarget.dataset.type] = e.detail.value
  },

  // 身份证校验
  checkIDCard(idcode) {
    // 加权因子
    var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    // 校验码
    var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
    var code = idcode + "";
    var last = idcode[17]; //最后一位
    var seventeen = code.substring(0, 17);
    // ISO 7064:1983.MOD 11-2
    // 判断最后一位校验码是否正确
    var arr = seventeen.split("");
    var len = arr.length;
    var num = 0;
    for (var i = 0; i < len; i++) {
      num = num + arr[i] * weight_factor[i];
    }
    // 获取余数
    var resisue = num % 11;
    var last_no = check_code[resisue];
    // 格式的正则
    // 正则思路
    /*
    第一位不可能是0
    第二位到第六位可以是0-9
    第七位到第十位是年份，所以七八位为19或者20
    十一位和十二位是月份，这两位是01-12之间的数值
    十三位和十四位是日期，是从01-31之间的数值
    十五，十六，十七都是数字0-9
    十八位可能是数字0-9，也可能是X
    */
    var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
    // 判断格式是否正确
    var format = idcard_patter.test(idcode);
    // 返回验证结果，校验码和格式同时正确才算是合法的身份证号码
    return last === last_no && format ? true : false;
  },
})